package com.antu.filegatewaytask.task;

import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;

import javax.annotation.Resource;

/**
 * 单机处理 demo
 *
 * @ClassName BasicProcessorDemo
 * @Description TODO
 * @Author CYH
 * @Date 2023/12/8 16:23
 */
// 支持 SpringBean 的形式
@Component
public class BasicProcessorDemo implements BasicProcessor {


    @Override
    public ProcessResult process(TaskContext context) throws Exception {
        // 在线日志功能，可以直接在控制台查看任务日志，非常便捷
        OmsLogger omsLogger = context.getOmsLogger();
        omsLogger.info("单机处理开始参数为:{}", context.getJobParams());
        System.out.printf("[taskid-%s]单机处理开始参数为:%s%n", context.getTaskId(), context.getJobParams());
        // TaskContext为任务的上下文信息，包含了在控制台录入的任务元数据，常用字段为
        // jobParams（任务参数，在控制台录入），instanceParams（任务实例参数，通过 OpenAPI 触发的任务实例才可能存在该参数）

        // 进行实际处理...
        Thread.sleep(5);
        System.out.printf("[taskid-%s]单机处理结束结果为为:%s%n", context.getTaskId(), context.getTaskId());
        // 返回结果，该结果会被持久化到数据库，在前端页面直接查看，极为方便
        return new ProcessResult(true, "结果为:" + context.getTaskId());
    }
}
